package com.ship.contract.bean;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ship.common.core.base.BaseBean;
import com.ship.common.core.base.Joinable;
import com.ship.common.core.mapping.Label;
import com.ship.common.core.mapping.SearchItem;
import com.ship.common.core.mapping.TableColumn;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;

/**
 * 船舶运费信息表
 * @TableName sm_ship_freight_cost
 */
@TableName(value ="sm_ship_freight_cost")
@Data
public class SmShipFreightCost extends BaseBean implements Joinable {

    /**
     * jsfhccb_id
     */
    @ApiModelProperty(value = "报关后jsfhccb_id（用于详情查询）")
    private Long jsfhccbId;

    /**
     * jsfhccb_id
     */
    @ApiModelProperty(value = "报关前jsfhccb_id（用于详情查询）")
    private Long jsfhccbBeforeId;

    /**
     * process_instance_id
     */
    @ApiModelProperty(value = "process_instance_id（用于详情查询）")
    private String processInstanceId;

    /**
     * cost_key
     */
    @ApiModelProperty(value = "报关后cost_key（用于详情查询）")
    private String costKey;

    /**
     * cost_key
     */
    @ApiModelProperty(value = "报关前cost_key（用于详情查询）")
    private String costBeforeKey;

    /**
     * 航次号
     */
    @Label(value = "Voyage Number")
    @TableColumn
    @SearchItem
    @ApiModelProperty(value = "航次号")
    private String voyageNumber;

    /**
     * 装载港
     */
    @Label(value = "Loading Port")
    @TableColumn
    @SearchItem
    @ApiModelProperty(value = "装载港")
    private String loadingPort;

    /**
     * 卸载港
     */
    @Label(value = "Discharge Port")
    @TableColumn
    @SearchItem
    @ApiModelProperty(value = "卸载港")
    private String dischargePort;

    /**
     * 船舶名称
     */
    @Label(value = "Vessel Name")
    @TableColumn
    @SearchItem
    @ApiModelProperty(value = "船舶名称")
    private String vesselName;

    /**
     * imo
     */
    @Label(value = "IMO")
    @TableColumn
    @SearchItem
    @ApiModelProperty(value = "IMO")
    private String imo;

    /**
     * 航行开始时间
     */
    @ApiModelProperty(value = "航行开始时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date voyageStartTime;

    /**
     * 航行结束时间
     */
    @ApiModelProperty(value = "航行结束时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date voyageEndTime;

    /**
     * 航行时间
     */
    @Label(value = "Voyage Time")
    @TableColumn
    @ApiModelProperty(value = "航行时间")
    @TableField(exist = false)
    private String voyageTime;

    /**
     * 船舶租金
     */
    @Label(value = "Charter Cost")
    @TableColumn
    @ApiModelProperty(value = "船舶租金")
    private String charterCost;

    /**
     * 船代费
     */
    @Label(value = "Shipping agency cost")
    @TableColumn
    @ApiModelProperty(value = "船代费")
    private String shippingAgencyCost;

    /**
     * 保险
     */
    @Label(value = "Insurance")
    @TableColumn
    @ApiModelProperty(value = "保险")
    private String insurance;

    /**
     * LSMGO
     */
    @Label(value = "LSMGO")
    @TableColumn
    @ApiModelProperty(value = "LSMGO")
    private String lsmgo;

    /**
     * VLSFO
     */
    @Label(value = "VLSFO")
    @TableColumn
    @ApiModelProperty(value = "VLSFO")
    private String vlsfo;

    /**
     * Positioning fee
     */
    @Label(value = "Positioning fee")
    @TableColumn
    @ApiModelProperty(value = "Positioning fee")
    private String positioningFee;

    /**
     * Ballast Bonus
     */
    @Label(value = "Ballast Bonus")
    @TableColumn
    @ApiModelProperty(value = "Ballast Bonus")
    private String ballastBonus;

    /**
     * BOG
     */
    @Label(value = "BOG")
    @TableColumn
    @ApiModelProperty(value = "BOG")
    private String bog;

    /**
     * Total Transportation cost
     */
    @Label(value = "Total Transportation cost")
    @TableColumn
    @ApiModelProperty(value = "Total Transportation cost")
    private String totalTransportationCost;

    /**
     * Estimated discharge quantity
     */
    @Label(value = "Estimated discharge quantity")
    @TableColumn
    @ApiModelProperty(value = "Estimated discharge quantity")
    private String estimatedDischargeQuantity;

    /**
     * Shipping cost
     */
    @Label(value = "Shipping cost")
    @TableColumn
    @ApiModelProperty(value = "Shipping cost")
    private String shippingCost;

    @Override
    public String getLabel() {
        return null;
    }

    @Override
    public String getValue() {
        return null;
    }
}